Notes

Pass -norc on the command line to not load ~/.eclrc on startup.
Since :eql and :eql5 are in *features*, you can use e.g. #+eql / #-eql5 as usual.

To run a Lisp file directly, do e.g. eql5 examples/5-colliding-mice -qtpl.

See the EQL UI (command eql -qgui) for a complete list of all supported classes and functions.

In the above mentioned UI you find a "Select" button, allowing you to select any Qt widget (even in other main widgets), if previously loaded from the UI command line. After selecting a widget, the parameter qsel:*q* will be set to it.

See command line option -qtpl for a top-level processing Qt events (see also readline note in ../README.txt).
It uses a simple GUI dialog for debug input (needed because read runs in its own thread).
On eventual print output, you won't see a fresh prompt, but the REPL will remain ready for input.
You can set this option permanently by adding this in ~./eclrc:
#+eql (setf eql:*qtpl* t)

If you want to use temporary Qt objects, you can use the qlet convenience macro (see the function list). It's a let* variant for Qt objects, deleting them when leaving its body.

No universal GC (garbage collection) for Qt objects:

Enumeration example: |Qt.AlignCenter|.
So, all enumerations are defined as constants, using case preserving symbol names (allowing convenient tab completion in Emacs).

Errors in EQL functions don't break into the debugger; if you want them to do so, set the variable eql:*break-on-errors* to T.
(So the choice is left to you: depending on the situation, either option may be more convenient than the other.)

The currently available Qt5 Modules (see qrequire) are:
:help :multimedia :network :quick :sql :svg :webengine :webkit
(module :opengl is obsolete, see QOpenGLWidget etc.)

If you want to use CLOS together with qt-object instances (which are of type struct), see examples X-extras/CLOS-encapsulation.lisp and 5-colliding-mice.lisp.
So there's a simple way to use either defclass or defstruct to encapsulate a qt-object.


If you're interested in embedding EQL in existing Qt/C++ projects, see example in directory Qt_EQL/ (which can be used together with Slime).

See also plugin example in directory Qt_EQL_plugin/.


The necessary parsing for generating the src/gen/* files is done by parsing the Qt documentation. See helper/README.txt if you want do it yourself.